/* A simulacao e executada com essa classe. Aqui e possivel alterar o numero de carros e 
 * pedestres da simulacao, assim como seu tempo de execucao.
 */

package principal;

import carros.Carro;


public class Simulacao {
	private static Simulacao simulacao;
	private long inicioDaSimulacao;
	private long tempoDaSimulacao;
	private int numeroDeFaixas;
	
	private Simulacao(){
		tempoDaSimulacao = 120000;
		inicioDaSimulacao = System.currentTimeMillis();
		numeroDeFaixas = 4;
	}
	
	public static Simulacao getInstance(){
		if(simulacao == null) simulacao = new Simulacao();
		return simulacao;
	}
	
	public static void main(String[] args) {
		getInstance();
		Janela.inicia();
		Janela.getInstance("Carros");
		
		Carro[]  carros = new Carro[10];
		Pedestre[] pedestres = new Pedestre[3];
		Semaforo semaforo = new Semaforo();
		
		int i;
		
		for(i = 0; i < 10; i++){
			carros[i] = new Carro();
			carros[i].start();
		}
		for(i = 0; i < 3; i++){
			pedestres[i] = new Pedestre(i);
			pedestres[i].start();
		}
		semaforo.start();
	}
	
	public boolean fimDaSimulacao(){
		if((System.currentTimeMillis() - inicioDaSimulacao) >= tempoDaSimulacao)
			return true;
		return false;		
	}

	public int getNumeroDeFaixas() {
		
		return numeroDeFaixas;
	}

		

}
